////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2017-2018 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// THIS IS AUTO-GENERATED CODE.  PLEASE DO NOT EDIT (File bug reports against tools).
///
/// Auto-generated by: ParameterParser V1.1.4
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @file  tf_1_0_0.cpp
/// @brief Auto-generated Chromatix parameter file
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include "tf_1_0_0.h"
#include "parametersetmanager.h"

TF_1_0_0_NAMESPACE_BEGIN

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Default Constructor
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
chromatix_tf10TypeClass::chromatix_tf10TypeClass(
    const CHAR* name)
    : ParameterModule(name, MAJOR, MINOR, PATCH, 0, 0, 0, 0)
{
    PARAMETER_INITIALIZE(SymbolTableID);
    PARAMETER_INITIALIZE(enable_section);
    PARAMETER_INITIALIZE(module_version);
    PARAMETER_INITIALIZE(control_variables);
    PARAMETER_INITIALIZE(control_method);
    PARAMETER_INITIALIZE(dynamic_enable_triggers);
    PARAMETER_INITIALIZE(chromatix_tf10_reserve);
    PARAMETER_INITIALIZE(chromatix_tf10_core);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Constructor
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
chromatix_tf10TypeClass::chromatix_tf10TypeClass(
    const CHAR* name,
    UINT32 modeId,
    UINT16 mode,
    UINT16 subMode,
    UINT32 group)
    : ParameterModule(name, MAJOR, MINOR, PATCH, modeId, mode, subMode, group)
{
    PARAMETER_INITIALIZE(SymbolTableID);
    PARAMETER_INITIALIZE(enable_section);
    PARAMETER_INITIALIZE(module_version);
    PARAMETER_INITIALIZE(control_variables);
    PARAMETER_INITIALIZE(control_method);
    PARAMETER_INITIALIZE(dynamic_enable_triggers);
    PARAMETER_INITIALIZE(chromatix_tf10_reserve);
    PARAMETER_INITIALIZE(chromatix_tf10_core);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Destructor
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
chromatix_tf10TypeClass::~chromatix_tf10TypeClass()
{
    Unloadchromatix_tf10Type(this);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// GetName
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const CHAR* chromatix_tf10TypeClass::GetName(
    const CHAR* type)
{
    const CHAR* name = type;
    CHAR temp[ParameterFileSymbolTableEntry::TYPE_LEN + 1];
    if (PARAMETER_STRCMP(type, ParameterFileSymbolTableEntry::GetType(temp, "tf10_ipe")) == 0)
    {
        name = "tf10_ipe";
    }
    return name;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_pass_reserve_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_pass_reserve_dataType(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_pass_reserve_dataType* structure)
{
    BOOL result = TRUE;
    structure->pass_trigger = (ispglobalelements::trigger_pass)entry->ReadEnum(&result);
    result = result && Loadmod_tf10_pass_reserve_dataType_pass_dataStruct(entry, &structure->pass_data);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_pass_reserve_dataType_pass_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_pass_reserve_dataType_pass_dataStruct(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_pass_reserve_dataType::pass_dataStruct* structure)
{
    BOOL result = TRUE;
    result = result && entry->ReadUInt32(&structure->blending_mode);
    result = result && entry->ReadUInt32(&structure->is_anr_strength_blender_mode);
    result = result && entry->ReadUInt32(&structure->disable_luma_ghost_detection);
    result = result && entry->ReadUInt32(&structure->disable_chroma_ghost_detection);
    result = result && entry->ReadUInt32(&structure->enable_lnr);
    result = result && entry->ReadUInt32(&structure->noise_params_y_uv_limit);
    result = result && entry->ReadUInt32(&structure->noise_params_cb_uv_limit);
    result = result && entry->ReadUInt32(&structure->noise_params_cr_uv_limit);
    result = result && entry->ReadUInt32(&structure->use_anr_for_decisions_y);
    result = result && entry->ReadUInt32(&structure->use_anr_for_decisions_c);
    result = result && entry->ReadUInt32(&structure->enable_noise_est_by_luma);
    result = result && entry->ReadUInt32(&structure->enable_noise_est_by_chroma);
    result = result && entry->ReadUInt32(&structure->padding_by_reflection_override);
    result = result && entry->ReadUInt32(&structure->padding_by_reflection);
    result = result && entry->ReadUInt32(&structure->morph_erode_en);
    result = result && entry->ReadUInt32(&structure->morph_dilate_en);
    result = result && entry->ReadUInt32(&structure->smear_inputs_for_decisions);
    result = result && entry->ReadUInt32(&structure->indications_premultiply_factor);
    result = result && entry->ReadUInt32(&structure->invert_temporal_blending_weights);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load chromatix_tf10_reserveType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadchromatix_tf10_reserveType(
    ParameterFileSymbolTableEntry* entry,
    chromatix_tf10_reserveType* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 4; i++)
    {
        result = result && Loadmod_tf10_pass_reserve_dataType(entry, &structure->mod_tf10_pass_reserve_data[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType* structure)
{
    BOOL result = TRUE;
    result = result && entry->ReadFloat(&structure->en);
    result = result && Loadtf10_rgn_dataType_noise_params_y_ytb_tabStruct(entry, &structure->noise_params_y_ytb_tab);
    result = result && Loadtf10_rgn_dataType_noise_params_y_ctb_tabStruct(entry, &structure->noise_params_y_ctb_tab);
    result = result && entry->ReadFloat(&structure->noise_params_y_top_lim);
    result = result && entry->ReadFloat(&structure->noise_params_y_bot_lim);
    result = result && Loadtf10_rgn_dataType_noise_params_cb_ytb_tabStruct(entry, &structure->noise_params_cb_ytb_tab);
    result = result && Loadtf10_rgn_dataType_noise_params_cb_ctb_tabStruct(entry, &structure->noise_params_cb_ctb_tab);
    result = result && entry->ReadFloat(&structure->noise_params_cb_top_lim);
    result = result && entry->ReadFloat(&structure->noise_params_cb_bot_lim);
    result = result && Loadtf10_rgn_dataType_noise_params_cr_ytb_tabStruct(entry, &structure->noise_params_cr_ytb_tab);
    result = result && Loadtf10_rgn_dataType_noise_params_cr_ctb_tabStruct(entry, &structure->noise_params_cr_ctb_tab);
    result = result && entry->ReadFloat(&structure->noise_params_cr_top_lim);
    result = result && entry->ReadFloat(&structure->noise_params_cr_bot_lim);
    result = result && entry->ReadFloat(&structure->a2_max_y);
    result = result && entry->ReadFloat(&structure->a2_min_y);
    result = result && entry->ReadFloat(&structure->a2_slope_y);
    result = result && entry->ReadFloat(&structure->a2_max_c);
    result = result && entry->ReadFloat(&structure->a2_min_c);
    result = result && entry->ReadFloat(&structure->a2_slope_c);
    result = result && entry->ReadFloat(&structure->is_same_blending_for_all_frequencies);
    result = result && Loadtf10_rgn_dataType_fs_to_a1_map_y_tabStruct(entry, &structure->fs_to_a1_map_y_tab);
    result = result && Loadtf10_rgn_dataType_fs_to_a1_map_c_tabStruct(entry, &structure->fs_to_a1_map_c_tab);
    result = result && Loadtf10_rgn_dataType_fs_to_a4_map_y_tabStruct(entry, &structure->fs_to_a4_map_y_tab);
    result = result && Loadtf10_rgn_dataType_fs_to_a4_map_c_tabStruct(entry, &structure->fs_to_a4_map_c_tab);
    result = result && entry->ReadFloat(&structure->dither_y);
    result = result && entry->ReadFloat(&structure->dither_cb);
    result = result && entry->ReadFloat(&structure->dither_cr);
    result = result && Loadtf10_rgn_dataType_lnr_lut_y_tabStruct(entry, &structure->lnr_lut_y_tab);
    result = result && Loadtf10_rgn_dataType_lnr_lut_c_tabStruct(entry, &structure->lnr_lut_c_tab);
    result = result && entry->ReadFloat(&structure->lnr_opt_center_x);
    result = result && entry->ReadFloat(&structure->lnr_opt_center_y);
    result = result && entry->ReadFloat(&structure->lnr_ellipses_bounding_rect_w);
    result = result && entry->ReadFloat(&structure->lnr_ellipses_bounding_rect_h);
    result = result && Loadtf10_rgn_dataType_fs_decision_params_y_c1_tabStruct(entry, &structure->fs_decision_params_y_c1_tab);
    result = result && Loadtf10_rgn_dataType_fs_decision_params_y_c2_tabStruct(entry, &structure->fs_decision_params_y_c2_tab);
    result = result && Loadtf10_rgn_dataType_fs_decision_params_y_c3_tabStruct(entry, &structure->fs_decision_params_y_c3_tab);
    result = result && Loadtf10_rgn_dataType_fs_decision_params_y_c4_tabStruct(entry, &structure->fs_decision_params_y_c4_tab);
    result = result && entry->ReadFloat(&structure->fs_decision_params_oof_y_c1);
    result = result && entry->ReadFloat(&structure->fs_decision_params_oof_y_c2);
    result = result && entry->ReadFloat(&structure->fs_decision_params_oof_y_c3);
    result = result && entry->ReadFloat(&structure->fs_decision_params_oof_y_c4);
    result = result && Loadtf10_rgn_dataType_fs_decision_params_c_c1_tabStruct(entry, &structure->fs_decision_params_c_c1_tab);
    result = result && Loadtf10_rgn_dataType_fs_decision_params_c_c2_tabStruct(entry, &structure->fs_decision_params_c_c2_tab);
    result = result && Loadtf10_rgn_dataType_fs_decision_params_c_c3_tabStruct(entry, &structure->fs_decision_params_c_c3_tab);
    result = result && Loadtf10_rgn_dataType_fs_decision_params_c_c4_tabStruct(entry, &structure->fs_decision_params_c_c4_tab);
    result = result && entry->ReadFloat(&structure->fs_decision_params_oof_c_c1);
    result = result && entry->ReadFloat(&structure->fs_decision_params_oof_c_c2);
    result = result && entry->ReadFloat(&structure->fs_decision_params_oof_c_c3);
    result = result && entry->ReadFloat(&structure->fs_decision_params_oof_c_c4);
    result = result && entry->ReadFloat(&structure->apply_fs_rank_filter);
    result = result && entry->ReadFloat(&structure->apply_fs_lpf);
    result = result && entry->ReadFloat(&structure->sad_y_calc_mode);
    result = result && entry->ReadFloat(&structure->sad_c_calc_mode);
    result = result && entry->ReadFloat(&structure->use_indications);
    result = result && entry->ReadFloat(&structure->indications_affect_fs_decision_also_directly);
    result = result && entry->ReadFloat(&structure->morph_erode_size);
    result = result && entry->ReadFloat(&structure->morph_dilate_size);
    result = result && entry->ReadFloat(&structure->tr_enable);
    result = result && entry->ReadFloat(&structure->tr_block_num_x);
    result = result && entry->ReadFloat(&structure->tr_block_num_y);
    result = result && entry->ReadFloat(&structure->tr_fs_threshold);
    result = result && entry->ReadFloat(&structure->tr_dead_zone);
    result = result && entry->ReadFloat(&structure->tr_count_percentage_threshold);
    result = result && entry->ReadFloat(&structure->out_of_frame_pixels_confidence);
    result = result && entry->ReadFloat(&structure->is_dci_mode);
    result = result && entry->ReadFloat(&structure->a3_t1_scale_y);
    result = result && entry->ReadFloat(&structure->a3_t1_offs_y);
    result = result && entry->ReadFloat(&structure->a3_t2_scale_y);
    result = result && entry->ReadFloat(&structure->a3_t2_offs_y);
    result = result && entry->ReadFloat(&structure->a3_t1_scale_c);
    result = result && entry->ReadFloat(&structure->a3_t1_offs_c);
    result = result && entry->ReadFloat(&structure->a3_t2_scale_c);
    result = result && entry->ReadFloat(&structure->a3_t2_offs_c);
    result = result && entry->ReadFloat(&structure->constant_blending_factor_y);
    result = result && entry->ReadFloat(&structure->constant_blending_factor_c);
    result = result && entry->ReadFloat(&structure->video_first_frame_spatial_nr_percentage);
    result = result && entry->ReadFloat(&structure->scene_cut_recovery_time);
    result = result && entry->ReadFloat(&structure->anr_final_blender_luma_min_strength_high_freq);
    result = result && entry->ReadFloat(&structure->anr_final_blender_luma_min_strength_low_freq);
    result = result && entry->ReadFloat(&structure->anr_final_blender_chroma_min_strength_high_freq);
    result = result && entry->ReadFloat(&structure->anr_final_blender_chroma_min_strength_low_freq);
    result = result && entry->ReadFloat(&structure->anr_final_blender_strength_decision_ythr_low);
    result = result && entry->ReadFloat(&structure->anr_final_blender_strength_decision_ythr_high);
    result = result && entry->ReadFloat(&structure->anr_final_blender_strength_decision_cthr_low);
    result = result && entry->ReadFloat(&structure->anr_final_blender_strength_decision_cthr_high);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_noise_params_y_ytb_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_noise_params_y_ytb_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::noise_params_y_ytb_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 17; i++)
    {
        result = result && entry->ReadFloat(&structure->noise_params_y_ytb[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_noise_params_y_ctb_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_noise_params_y_ctb_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::noise_params_y_ctb_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 8; i++)
    {
        result = result && entry->ReadFloat(&structure->noise_params_y_ctb[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_noise_params_cb_ytb_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_noise_params_cb_ytb_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::noise_params_cb_ytb_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 17; i++)
    {
        result = result && entry->ReadFloat(&structure->noise_params_cb_ytb[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_noise_params_cb_ctb_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_noise_params_cb_ctb_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::noise_params_cb_ctb_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 8; i++)
    {
        result = result && entry->ReadFloat(&structure->noise_params_cb_ctb[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_noise_params_cr_ytb_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_noise_params_cr_ytb_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::noise_params_cr_ytb_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 17; i++)
    {
        result = result && entry->ReadFloat(&structure->noise_params_cr_ytb[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_noise_params_cr_ctb_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_noise_params_cr_ctb_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::noise_params_cr_ctb_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 8; i++)
    {
        result = result && entry->ReadFloat(&structure->noise_params_cr_ctb[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_fs_to_a1_map_y_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_fs_to_a1_map_y_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::fs_to_a1_map_y_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 9; i++)
    {
        result = result && entry->ReadFloat(&structure->fs_to_a1_map_y[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_fs_to_a1_map_c_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_fs_to_a1_map_c_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::fs_to_a1_map_c_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 9; i++)
    {
        result = result && entry->ReadFloat(&structure->fs_to_a1_map_c[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_fs_to_a4_map_y_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_fs_to_a4_map_y_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::fs_to_a4_map_y_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 9; i++)
    {
        result = result && entry->ReadFloat(&structure->fs_to_a4_map_y[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_fs_to_a4_map_c_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_fs_to_a4_map_c_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::fs_to_a4_map_c_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 9; i++)
    {
        result = result && entry->ReadFloat(&structure->fs_to_a4_map_c[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_lnr_lut_y_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_lnr_lut_y_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::lnr_lut_y_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 16; i++)
    {
        result = result && entry->ReadFloat(&structure->lnr_lut_y[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_lnr_lut_c_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_lnr_lut_c_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::lnr_lut_c_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 16; i++)
    {
        result = result && entry->ReadFloat(&structure->lnr_lut_c[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_fs_decision_params_y_c1_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_fs_decision_params_y_c1_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::fs_decision_params_y_c1_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 9; i++)
    {
        result = result && entry->ReadFloat(&structure->fs_decision_params_y_c1[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_fs_decision_params_y_c2_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_fs_decision_params_y_c2_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::fs_decision_params_y_c2_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 9; i++)
    {
        result = result && entry->ReadFloat(&structure->fs_decision_params_y_c2[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_fs_decision_params_y_c3_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_fs_decision_params_y_c3_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::fs_decision_params_y_c3_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 9; i++)
    {
        result = result && entry->ReadFloat(&structure->fs_decision_params_y_c3[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_fs_decision_params_y_c4_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_fs_decision_params_y_c4_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::fs_decision_params_y_c4_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 9; i++)
    {
        result = result && entry->ReadFloat(&structure->fs_decision_params_y_c4[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_fs_decision_params_c_c1_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_fs_decision_params_c_c1_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::fs_decision_params_c_c1_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 9; i++)
    {
        result = result && entry->ReadFloat(&structure->fs_decision_params_c_c1[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_fs_decision_params_c_c2_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_fs_decision_params_c_c2_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::fs_decision_params_c_c2_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 9; i++)
    {
        result = result && entry->ReadFloat(&structure->fs_decision_params_c_c2[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_fs_decision_params_c_c3_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_fs_decision_params_c_c3_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::fs_decision_params_c_c3_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 9; i++)
    {
        result = result && entry->ReadFloat(&structure->fs_decision_params_c_c3[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load tf10_rgn_dataType_fs_decision_params_c_c4_tabStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadtf10_rgn_dataType_fs_decision_params_c_c4_tabStruct(
    ParameterFileSymbolTableEntry* entry,
    tf10_rgn_dataType::fs_decision_params_c_c4_tabStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 9; i++)
    {
        result = result && entry->ReadFloat(&structure->fs_decision_params_c_c4[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_pass_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_pass_dataType(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_pass_dataType* structure)
{
    BOOL result = TRUE;
    structure->pass_trigger = (ispglobalelements::trigger_pass)entry->ReadEnum(&result);
    result = result && Loadtf10_rgn_dataType(entry, &structure->tf10_rgn_data);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_cct_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_cct_dataType(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_cct_dataType* structure)
{
    BOOL result = TRUE;
    result = result && ispglobalelements::ispglobalelementsClass::Loadtrigger_pt_type(entry, &structure->cct_trigger);
    result = result && Loadmod_tf10_cct_dataType_cct_dataStruct(entry, &structure->cct_data);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_cct_dataType_cct_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_cct_dataType_cct_dataStruct(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_cct_dataType::cct_dataStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 4; i++)
    {
        result = result && Loadmod_tf10_pass_dataType(entry, &structure->mod_tf10_pass_data[i]);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_aec_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_aec_dataType(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_aec_dataType* structure)
{
    BOOL result = TRUE;
    result = result && globalelements::globalelementsClass::Loadtrigger_pt_type_aec(entry, &structure->aec_trigger);
    result = result && Loadmod_tf10_aec_dataType_aec_dataStruct(entry, &structure->aec_data);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_aec_dataType_aec_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_aec_dataType_aec_dataStruct(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_aec_dataType::aec_dataStruct* structure)
{
    BOOL result = TRUE;

    // Reading structure->mod_tf10_cct_data from the symbol table
    {
        result = result && entry->ReadUInt32(&structure->mod_tf10_cct_dataCount);
        structure->mod_tf10_cct_dataID = entry->ID;
        ParameterFileSymbolTableEntry* pointerEntry1 = entry->Table->ReadPointerEntry(entry);
        result = result && pointerEntry1 != NULL;
        if (result)
        {
            structure->mod_tf10_cct_data   = PARAMETER_NEW mod_tf10_cct_dataType[structure->mod_tf10_cct_dataCount];
        }
        if (!result || structure->mod_tf10_cct_data == NULL)
        {
            structure->mod_tf10_cct_dataCount = 0;
        }
        for (UINT32 i = 0; result && i < structure->mod_tf10_cct_dataCount; i++)
        {
            result = result && Loadmod_tf10_cct_dataType(pointerEntry1, &structure->mod_tf10_cct_data[i]);
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_hdr_aec_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_hdr_aec_dataType(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_hdr_aec_dataType* structure)
{
    BOOL result = TRUE;
    result = result && ispglobalelements::ispglobalelementsClass::Loadtrigger_pt_type_aec_hdr(entry, &structure->hdr_aec_trigger);
    result = result && Loadmod_tf10_hdr_aec_dataType_hdr_aec_dataStruct(entry, &structure->hdr_aec_data);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_hdr_aec_dataType_hdr_aec_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_hdr_aec_dataType_hdr_aec_dataStruct(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_hdr_aec_dataType::hdr_aec_dataStruct* structure)
{
    BOOL result = TRUE;

    // Reading structure->mod_tf10_aec_data from the symbol table
    {
        result = result && entry->ReadUInt32(&structure->mod_tf10_aec_dataCount);
        structure->mod_tf10_aec_dataID = entry->ID;
        ParameterFileSymbolTableEntry* pointerEntry1 = entry->Table->ReadPointerEntry(entry);
        result = result && pointerEntry1 != NULL;
        if (result)
        {
            structure->mod_tf10_aec_data   = PARAMETER_NEW mod_tf10_aec_dataType[structure->mod_tf10_aec_dataCount];
        }
        if (!result || structure->mod_tf10_aec_data == NULL)
        {
            structure->mod_tf10_aec_dataCount = 0;
        }
        for (UINT32 i = 0; result && i < structure->mod_tf10_aec_dataCount; i++)
        {
            result = result && Loadmod_tf10_aec_dataType(pointerEntry1, &structure->mod_tf10_aec_data[i]);
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_drc_gain_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_drc_gain_dataType(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_drc_gain_dataType* structure)
{
    BOOL result = TRUE;
    result = result && ispglobalelements::ispglobalelementsClass::Loadtrigger_pt_type(entry, &structure->drc_gain_trigger);
    result = result && Loadmod_tf10_drc_gain_dataType_drc_gain_dataStruct(entry, &structure->drc_gain_data);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_drc_gain_dataType_drc_gain_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_drc_gain_dataType_drc_gain_dataStruct(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_drc_gain_dataType::drc_gain_dataStruct* structure)
{
    BOOL result = TRUE;

    // Reading structure->mod_tf10_hdr_aec_data from the symbol table
    {
        result = result && entry->ReadUInt32(&structure->mod_tf10_hdr_aec_dataCount);
        structure->mod_tf10_hdr_aec_dataID = entry->ID;
        ParameterFileSymbolTableEntry* pointerEntry1 = entry->Table->ReadPointerEntry(entry);
        result = result && pointerEntry1 != NULL;
        if (result)
        {
            structure->mod_tf10_hdr_aec_data   = PARAMETER_NEW mod_tf10_hdr_aec_dataType[structure->mod_tf10_hdr_aec_dataCount];
        }
        if (!result || structure->mod_tf10_hdr_aec_data == NULL)
        {
            structure->mod_tf10_hdr_aec_dataCount = 0;
        }
        for (UINT32 i = 0; result && i < structure->mod_tf10_hdr_aec_dataCount; i++)
        {
            result = result && Loadmod_tf10_hdr_aec_dataType(pointerEntry1, &structure->mod_tf10_hdr_aec_data[i]);
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_pre_scale_ratio_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_pre_scale_ratio_dataType(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_pre_scale_ratio_dataType* structure)
{
    BOOL result = TRUE;
    result = result && ispglobalelements::ispglobalelementsClass::Loadtrigger_pt_type(entry, &structure->pre_scale_ratio_trigger);
    result = result && Loadmod_tf10_pre_scale_ratio_dataType_pre_scale_ratio_dataStruct(entry, &structure->pre_scale_ratio_data);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_pre_scale_ratio_dataType_pre_scale_ratio_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_pre_scale_ratio_dataType_pre_scale_ratio_dataStruct(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_pre_scale_ratio_dataType::pre_scale_ratio_dataStruct* structure)
{
    BOOL result = TRUE;

    // Reading structure->mod_tf10_drc_gain_data from the symbol table
    {
        result = result && entry->ReadUInt32(&structure->mod_tf10_drc_gain_dataCount);
        structure->mod_tf10_drc_gain_dataID = entry->ID;
        ParameterFileSymbolTableEntry* pointerEntry1 = entry->Table->ReadPointerEntry(entry);
        result = result && pointerEntry1 != NULL;
        if (result)
        {
            structure->mod_tf10_drc_gain_data   = PARAMETER_NEW mod_tf10_drc_gain_dataType[structure->mod_tf10_drc_gain_dataCount];
        }
        if (!result || structure->mod_tf10_drc_gain_data == NULL)
        {
            structure->mod_tf10_drc_gain_dataCount = 0;
        }
        for (UINT32 i = 0; result && i < structure->mod_tf10_drc_gain_dataCount; i++)
        {
            result = result && Loadmod_tf10_drc_gain_dataType(pointerEntry1, &structure->mod_tf10_drc_gain_data[i]);
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_post_scale_ratio_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_post_scale_ratio_dataType(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_post_scale_ratio_dataType* structure)
{
    BOOL result = TRUE;
    result = result && ispglobalelements::ispglobalelementsClass::Loadtrigger_pt_type(entry, &structure->post_scale_ratio_trigger);
    result = result && Loadmod_tf10_post_scale_ratio_dataType_post_scale_ratio_dataStruct(entry, &structure->post_scale_ratio_data);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_post_scale_ratio_dataType_post_scale_ratio_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_post_scale_ratio_dataType_post_scale_ratio_dataStruct(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_post_scale_ratio_dataType::post_scale_ratio_dataStruct* structure)
{
    BOOL result = TRUE;

    // Reading structure->mod_tf10_pre_scale_ratio_data from the symbol table
    {
        result = result && entry->ReadUInt32(&structure->mod_tf10_pre_scale_ratio_dataCount);
        structure->mod_tf10_pre_scale_ratio_dataID = entry->ID;
        ParameterFileSymbolTableEntry* pointerEntry1 = entry->Table->ReadPointerEntry(entry);
        result = result && pointerEntry1 != NULL;
        if (result)
        {
            structure->mod_tf10_pre_scale_ratio_data   = PARAMETER_NEW mod_tf10_pre_scale_ratio_dataType[structure->mod_tf10_pre_scale_ratio_dataCount];
        }
        if (!result || structure->mod_tf10_pre_scale_ratio_data == NULL)
        {
            structure->mod_tf10_pre_scale_ratio_dataCount = 0;
        }
        for (UINT32 i = 0; result && i < structure->mod_tf10_pre_scale_ratio_dataCount; i++)
        {
            result = result && Loadmod_tf10_pre_scale_ratio_dataType(pointerEntry1, &structure->mod_tf10_pre_scale_ratio_data[i]);
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_lens_zoom_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_lens_zoom_dataType(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_lens_zoom_dataType* structure)
{
    BOOL result = TRUE;
    result = result && ispglobalelements::ispglobalelementsClass::Loadtrigger_pt_type(entry, &structure->lens_zoom_trigger);
    result = result && Loadmod_tf10_lens_zoom_dataType_lens_zoom_dataStruct(entry, &structure->lens_zoom_data);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_lens_zoom_dataType_lens_zoom_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_lens_zoom_dataType_lens_zoom_dataStruct(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_lens_zoom_dataType::lens_zoom_dataStruct* structure)
{
    BOOL result = TRUE;

    // Reading structure->mod_tf10_post_scale_ratio_data from the symbol table
    {
        result = result && entry->ReadUInt32(&structure->mod_tf10_post_scale_ratio_dataCount);
        structure->mod_tf10_post_scale_ratio_dataID = entry->ID;
        ParameterFileSymbolTableEntry* pointerEntry1 = entry->Table->ReadPointerEntry(entry);
        result = result && pointerEntry1 != NULL;
        if (result)
        {
            structure->mod_tf10_post_scale_ratio_data   = PARAMETER_NEW mod_tf10_post_scale_ratio_dataType[structure->mod_tf10_post_scale_ratio_dataCount];
        }
        if (!result || structure->mod_tf10_post_scale_ratio_data == NULL)
        {
            structure->mod_tf10_post_scale_ratio_dataCount = 0;
        }
        for (UINT32 i = 0; result && i < structure->mod_tf10_post_scale_ratio_dataCount; i++)
        {
            result = result && Loadmod_tf10_post_scale_ratio_dataType(pointerEntry1, &structure->mod_tf10_post_scale_ratio_data[i]);
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_lens_posn_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_lens_posn_dataType(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_lens_posn_dataType* structure)
{
    BOOL result = TRUE;
    result = result && ispglobalelements::ispglobalelementsClass::Loadtrigger_pt_type(entry, &structure->lens_posn_trigger);
    result = result && Loadmod_tf10_lens_posn_dataType_lens_posn_dataStruct(entry, &structure->lens_posn_data);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load mod_tf10_lens_posn_dataType_lens_posn_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmod_tf10_lens_posn_dataType_lens_posn_dataStruct(
    ParameterFileSymbolTableEntry* entry,
    mod_tf10_lens_posn_dataType::lens_posn_dataStruct* structure)
{
    BOOL result = TRUE;

    // Reading structure->mod_tf10_lens_zoom_data from the symbol table
    {
        result = result && entry->ReadUInt32(&structure->mod_tf10_lens_zoom_dataCount);
        structure->mod_tf10_lens_zoom_dataID = entry->ID;
        ParameterFileSymbolTableEntry* pointerEntry1 = entry->Table->ReadPointerEntry(entry);
        result = result && pointerEntry1 != NULL;
        if (result)
        {
            structure->mod_tf10_lens_zoom_data   = PARAMETER_NEW mod_tf10_lens_zoom_dataType[structure->mod_tf10_lens_zoom_dataCount];
        }
        if (!result || structure->mod_tf10_lens_zoom_data == NULL)
        {
            structure->mod_tf10_lens_zoom_dataCount = 0;
        }
        for (UINT32 i = 0; result && i < structure->mod_tf10_lens_zoom_dataCount; i++)
        {
            result = result && Loadmod_tf10_lens_zoom_dataType(pointerEntry1, &structure->mod_tf10_lens_zoom_data[i]);
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load chromatix_tf10_coreType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadchromatix_tf10_coreType(
    ParameterFileSymbolTableEntry* entry,
    chromatix_tf10_coreType* structure)
{
    BOOL result = TRUE;

    // Reading structure->mod_tf10_lens_posn_data from the symbol table
    {
        result = result && entry->ReadUInt32(&structure->mod_tf10_lens_posn_dataCount);
        structure->mod_tf10_lens_posn_dataID = entry->ID;
        ParameterFileSymbolTableEntry* pointerEntry1 = entry->Table->ReadPointerEntry(entry);
        result = result && pointerEntry1 != NULL;
        if (result)
        {
            structure->mod_tf10_lens_posn_data   = PARAMETER_NEW mod_tf10_lens_posn_dataType[structure->mod_tf10_lens_posn_dataCount];
        }
        if (!result || structure->mod_tf10_lens_posn_data == NULL)
        {
            structure->mod_tf10_lens_posn_dataCount = 0;
        }
        for (UINT32 i = 0; result && i < structure->mod_tf10_lens_posn_dataCount; i++)
        {
            result = result && Loadmod_tf10_lens_posn_dataType(pointerEntry1, &structure->mod_tf10_lens_posn_data[i]);
        }
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load chromatix_tf10Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadchromatix_tf10Type(
    ParameterFileSymbolTableEntry* entry,
    chromatix_tf10Type* structure)
{
    BOOL result = TRUE;
    result = result && Loadenable_sectionStruct(entry, &structure->enable_section);
    result = result && Loadmodule_versionStruct(entry, &structure->module_version);
    result = result && Loadcontrol_variablesStruct(entry, &structure->control_variables);
    result = result && Loadcontrol_methodStruct(entry, &structure->control_method);
    result = result && Loaddynamic_enable_triggersStruct(entry, &structure->dynamic_enable_triggers);
    result = result && Loadchromatix_tf10_reserveType(entry, &structure->chromatix_tf10_reserve);
    result = result && Loadchromatix_tf10_coreType(entry, &structure->chromatix_tf10_core);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load enable_sectionStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadenable_sectionStruct(
    ParameterFileSymbolTableEntry* entry,
    chromatix_tf10Type::enable_sectionStruct* structure)
{
    BOOL result = TRUE;
    result = result && entry->ReadInt32(&structure->master_en);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load module_versionStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadmodule_versionStruct(
    ParameterFileSymbolTableEntry* entry,
    chromatix_tf10Type::module_versionStruct* structure)
{
    BOOL result = TRUE;
    result = result && entry->ReadInt32(&structure->major_revision);
    result = result && entry->ReadInt32(&structure->minor_revision);
    result = result && entry->ReadInt32(&structure->incr_revision);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load control_variablesStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadcontrol_variablesStruct(
    ParameterFileSymbolTableEntry* entry,
    chromatix_tf10Type::control_variablesStruct* structure)
{
    BOOL result = TRUE;
    for (UINT32 i = 0; result && i < 9; i++)
    {
        structure->control_var_type[i] = (chromatix_tf10Type::control_variablesStruct::control_var_typeEnum)entry->ReadEnum(&result);
    }

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load control_methodStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loadcontrol_methodStruct(
    ParameterFileSymbolTableEntry* entry,
    chromatix_tf10Type::control_methodStruct* structure)
{
    BOOL result = TRUE;
    structure->aec_exp_control = (ispglobalelements::tuning_control_aec_type)entry->ReadEnum(&result);
    structure->aec_hdr_control = (ispglobalelements::tuning_control_aec_hdr_type)entry->ReadEnum(&result);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dynamic_enable_triggersStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loaddynamic_enable_triggersStruct(
    ParameterFileSymbolTableEntry* entry,
    chromatix_tf10Type::dynamic_enable_triggersStruct* structure)
{
    BOOL result = TRUE;
    result = result && Loaddynamic_enable_triggersStruct_master_enStruct(entry, &structure->master_en);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Load dynamic_enable_triggersStruct_master_enStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BOOL chromatix_tf10TypeClass::Loaddynamic_enable_triggersStruct_master_enStruct(
    ParameterFileSymbolTableEntry* entry,
    chromatix_tf10Type::dynamic_enable_triggersStruct::master_enStruct* structure)
{
    BOOL result = TRUE;
    result = result && entry->ReadInt32(&structure->enable);
    structure->hyst_control_var = (ispglobalelements::control_var_type)entry->ReadEnum(&result);
    structure->hyst_mode = (ispglobalelements::hyst_direction)entry->ReadEnum(&result);
    result = result && ispglobalelements::ispglobalelementsClass::Loadtrigger_pt_couplet_type(entry, &structure->hyst_trigger);

    return result;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload mod_tf10_aec_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_tf10TypeClass::Unloadmod_tf10_aec_dataType(
    mod_tf10_aec_dataType* structure)
{
    Unloadmod_tf10_aec_dataType_aec_dataStruct(&structure->aec_data);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload mod_tf10_aec_dataType_aec_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_tf10TypeClass::Unloadmod_tf10_aec_dataType_aec_dataStruct(
    mod_tf10_aec_dataType::aec_dataStruct* structure)
{
    PARAMETER_DELETE[] structure->mod_tf10_cct_data;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload mod_tf10_hdr_aec_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_tf10TypeClass::Unloadmod_tf10_hdr_aec_dataType(
    mod_tf10_hdr_aec_dataType* structure)
{
    Unloadmod_tf10_hdr_aec_dataType_hdr_aec_dataStruct(&structure->hdr_aec_data);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload mod_tf10_hdr_aec_dataType_hdr_aec_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_tf10TypeClass::Unloadmod_tf10_hdr_aec_dataType_hdr_aec_dataStruct(
    mod_tf10_hdr_aec_dataType::hdr_aec_dataStruct* structure)
{
    for (UINT32 i = 0; i < structure->mod_tf10_aec_dataCount; i++)
    {
        Unloadmod_tf10_aec_dataType(&structure->mod_tf10_aec_data[i]);
    }
    PARAMETER_DELETE[] structure->mod_tf10_aec_data;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload mod_tf10_drc_gain_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_tf10TypeClass::Unloadmod_tf10_drc_gain_dataType(
    mod_tf10_drc_gain_dataType* structure)
{
    Unloadmod_tf10_drc_gain_dataType_drc_gain_dataStruct(&structure->drc_gain_data);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload mod_tf10_drc_gain_dataType_drc_gain_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_tf10TypeClass::Unloadmod_tf10_drc_gain_dataType_drc_gain_dataStruct(
    mod_tf10_drc_gain_dataType::drc_gain_dataStruct* structure)
{
    for (UINT32 i = 0; i < structure->mod_tf10_hdr_aec_dataCount; i++)
    {
        Unloadmod_tf10_hdr_aec_dataType(&structure->mod_tf10_hdr_aec_data[i]);
    }
    PARAMETER_DELETE[] structure->mod_tf10_hdr_aec_data;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload mod_tf10_pre_scale_ratio_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_tf10TypeClass::Unloadmod_tf10_pre_scale_ratio_dataType(
    mod_tf10_pre_scale_ratio_dataType* structure)
{
    Unloadmod_tf10_pre_scale_ratio_dataType_pre_scale_ratio_dataStruct(&structure->pre_scale_ratio_data);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload mod_tf10_pre_scale_ratio_dataType_pre_scale_ratio_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_tf10TypeClass::Unloadmod_tf10_pre_scale_ratio_dataType_pre_scale_ratio_dataStruct(
    mod_tf10_pre_scale_ratio_dataType::pre_scale_ratio_dataStruct* structure)
{
    for (UINT32 i = 0; i < structure->mod_tf10_drc_gain_dataCount; i++)
    {
        Unloadmod_tf10_drc_gain_dataType(&structure->mod_tf10_drc_gain_data[i]);
    }
    PARAMETER_DELETE[] structure->mod_tf10_drc_gain_data;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload mod_tf10_post_scale_ratio_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_tf10TypeClass::Unloadmod_tf10_post_scale_ratio_dataType(
    mod_tf10_post_scale_ratio_dataType* structure)
{
    Unloadmod_tf10_post_scale_ratio_dataType_post_scale_ratio_dataStruct(&structure->post_scale_ratio_data);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload mod_tf10_post_scale_ratio_dataType_post_scale_ratio_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_tf10TypeClass::Unloadmod_tf10_post_scale_ratio_dataType_post_scale_ratio_dataStruct(
    mod_tf10_post_scale_ratio_dataType::post_scale_ratio_dataStruct* structure)
{
    for (UINT32 i = 0; i < structure->mod_tf10_pre_scale_ratio_dataCount; i++)
    {
        Unloadmod_tf10_pre_scale_ratio_dataType(&structure->mod_tf10_pre_scale_ratio_data[i]);
    }
    PARAMETER_DELETE[] structure->mod_tf10_pre_scale_ratio_data;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload mod_tf10_lens_zoom_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_tf10TypeClass::Unloadmod_tf10_lens_zoom_dataType(
    mod_tf10_lens_zoom_dataType* structure)
{
    Unloadmod_tf10_lens_zoom_dataType_lens_zoom_dataStruct(&structure->lens_zoom_data);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload mod_tf10_lens_zoom_dataType_lens_zoom_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_tf10TypeClass::Unloadmod_tf10_lens_zoom_dataType_lens_zoom_dataStruct(
    mod_tf10_lens_zoom_dataType::lens_zoom_dataStruct* structure)
{
    for (UINT32 i = 0; i < structure->mod_tf10_post_scale_ratio_dataCount; i++)
    {
        Unloadmod_tf10_post_scale_ratio_dataType(&structure->mod_tf10_post_scale_ratio_data[i]);
    }
    PARAMETER_DELETE[] structure->mod_tf10_post_scale_ratio_data;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload mod_tf10_lens_posn_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_tf10TypeClass::Unloadmod_tf10_lens_posn_dataType(
    mod_tf10_lens_posn_dataType* structure)
{
    Unloadmod_tf10_lens_posn_dataType_lens_posn_dataStruct(&structure->lens_posn_data);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload mod_tf10_lens_posn_dataType_lens_posn_dataStruct
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_tf10TypeClass::Unloadmod_tf10_lens_posn_dataType_lens_posn_dataStruct(
    mod_tf10_lens_posn_dataType::lens_posn_dataStruct* structure)
{
    for (UINT32 i = 0; i < structure->mod_tf10_lens_zoom_dataCount; i++)
    {
        Unloadmod_tf10_lens_zoom_dataType(&structure->mod_tf10_lens_zoom_data[i]);
    }
    PARAMETER_DELETE[] structure->mod_tf10_lens_zoom_data;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload chromatix_tf10_coreType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_tf10TypeClass::Unloadchromatix_tf10_coreType(
    chromatix_tf10_coreType* structure)
{
    for (UINT32 i = 0; i < structure->mod_tf10_lens_posn_dataCount; i++)
    {
        Unloadmod_tf10_lens_posn_dataType(&structure->mod_tf10_lens_posn_data[i]);
    }
    PARAMETER_DELETE[] structure->mod_tf10_lens_posn_data;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Unload chromatix_tf10Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void chromatix_tf10TypeClass::Unloadchromatix_tf10Type(
    chromatix_tf10Type* structure)
{
    Unloadchromatix_tf10_coreType(&structure->chromatix_tf10_core);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Parse symbol table entry, and return a new object
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ParameterModule* chromatix_tf10TypeClass::Parse(
    ParameterSetManager* manager,
    ParameterFileSymbolTableEntry* entry) const
{
    chromatix_tf10TypeClass* cls = NULL;

    if (PARAMETER_STRCMP(Type, entry->Type) == 0 && Major == entry->Major &&
        Minor == entry->Minor && Patch == entry->Patch)
    {
        cls = PARAMETER_NEW chromatix_tf10TypeClass(GetName(entry->Type), 
            entry->ModeId, entry->Mode, entry->SubMode, entry->Group);
        if (cls != NULL)
        {
            BOOL result = TRUE;

            cls->SymbolTableID = entry->ID;
            cls->ID            = entry->ID;

            result = result && Loadchromatix_tf10Type(entry, cls);

            if (!result)
            {
                PARAMETER_DELETE cls;
                cls = NULL;
            }
        }
    }
    return (ParameterModule*)cls;
}


TF_1_0_0_NAMESPACE_END
